博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
6、Modal
阅读量:6336 次
发布时间:2019-06-22

本文共 4120 字,大约阅读时间需要 13 分钟。

1、首先Modal是一个内容窗格、通常用来做一个选择或编辑。

先来看一下 tabs.html 做了什么。
/* --- tabs.html ----*/ 
Modals
Hobbits
Gollum
Frodo Baggins
Sam
/* --- tabs.html ----*/

上述常见了 3个 item 并对每个 item监听了一个 click方法 传了一个参数。 来看 tabs.js

/* --- tabs.js ----*/ import { Modal, NavController, Page} from 'ionic-angular';import { ModalsContentPage } from './modal.js' @Page({  templateUrl: 'build/pages/tabs/tabs.html',}) export class TabsPage {   static get parameters() {    return [[NavController]];  }     constructor(nav) {      this.nav = nav;  }   openModal(characterNum) {     let modal = Modal.create(ModalsContentPage, characterNum);    this.nav.present(modal);   } } /* --- tabs.js ----*/

首先 我导入了。import { ModalNavControllerPage } from 'ionic-angular' page不用说啦。

还记得。navController么?他是用来控制路由的 。我记得原来 用他路由传参数是。
this
.nav.push( ItemDetailsPage , {
       
item: item
});
 

那这里用的是 this.nav.present(modal); 看完以前的章节 可以得知当创建loading alert的时候 他都用的是 present 而不是 push那代表着。其实他本身并不是导航到另一个路由

而是变成一个层。覆盖到 我们的页面之上。这点要记住。Modal.create的方法接受个两个参数 一个是组件。一个就是我们的参数。。我们在来看 modal.js 是怎么接收这个参数的。
/* --- modal.js ----*/ import { NavParams, Page,ViewController} from 'ionic-angular'; @Page({    templateUrl: 'build/pages/tabs/modal.html',})export class ModalsContentPage {    static get parameters() {        return [[NavParams],[ViewController]];    }     constructor(params,viewCtrl) {        this.params = params;        this.viewCtrl = viewCtrl;        var characters = [            {                name: 'Gollum',                quote: 'Sneaky little hobbitses!',                image: 'img/1.jpg',                items: [                    { title: 'Race', note: 'Hobbit' },                    { title: 'Culture', note: 'River Folk' },                    { title: 'Alter Ego', note: 'Smeagol' }                ]            },            {                name: 'Frodo',                quote: 'Go back, Sam! I\'m going to Mordor alone!',                image: 'img/1.jpg',                items: [                    { title: 'Race', note: 'Hobbit' },                    { title: 'Culture', note: 'Shire Folk' },                    { title: 'Weapon', note: 'Sting' }                ]            },            {                name: 'Samwise Gamgee',                quote: 'What we need is a few good taters.',                image: 'img/1.jpg',                items: [                    { title: 'Race', note: 'Hobbit' },                    { title: 'Culture', note: 'Shire Folk' },                    { title: 'Nickname', note: 'Sam' }                ]            }        ];        this.character = characters[this.params.get('charNum')];    }     dismiss() {        this.viewCtrl.dismiss();    }} /* --- modal.js ----*/
首先呢 我导入了。
import { NavParamsPageViewController } from 'ionic-angular';

同样的 虽说我们路由的导航 从 this.nav.push( )变成了 this.nav.present() 但是我们从接收参数的方法并没有改变。我们同样是用this.params.get('charNum')获取参数

1、解析一下 constructor里的代码 
     1、
var 
characters 其实就是获取一个局部变量里面的数组就是数据。
  2、
this
.params.get(
'charNum'
获取一个参数 在 tabs.html 里我们得知他的参数返回一个number类型。 所以获取到了 
var 
characters 数组中的一条数据
    3、
this
.character 其实就相当于 ng1中的 
$scope.character 他本身跟局部变量 
var 
characters 并没有关系,所以这里把得到的数据 给作用域 
this
.character

2、来看 dismiss 方法 this.viewCtrl.dismiss(); viewCtrl : ViewController 中的 ViewController  他又是啥呢? 因为 modal 他的创建 是覆盖页面变成一个层 ,所以把这个层去除掉的时候

就需要用到 
this
.viewCtrl.dismiss();这个方法了。之后在来看 modal.html页面。
/* --- modal.html ----*/ 
Description

{
{character.name}}

{

{character.quote}}

{
{item.title}}
{
{item.note}}
/* --- modal.html ----*/

最终效果:

转载于:https://www.cnblogs.com/dandingjun/p/5562560.html

你可能感兴趣的文章
OWINS是什么(转载)
查看>>
在一台电脑访问另一台电脑的mysql数据库
查看>>
指针数组与数组指针
查看>>
python之MySQL学习——数据操作
查看>>
Quartz定调度简单案例
查看>>
浅析C#编程中的内存管理
查看>>
topcoder srm 713 div1
查看>>
基于Python的Flask的开发实战(第一节Flask安装)
查看>>
java判断一个字符串是否是数字的三种方法
查看>>
机器学习算法学习---降维技术(一)
查看>>
悬崖勒马回头是岸——关于玩王者荣耀游戏的一些想法
查看>>
关于微信小程序 modal弹框组件的介绍
查看>>
[MongoDB]对数组操作
查看>>
pure css file tree
查看>>
基于matlab的libsvm使用遇到的问题
查看>>
Ice的HelloWorld(Java)
查看>>
字符串的常用函数
查看>>
读书-算法《程序设计导引及在线实践》-简单计算题4:填词
查看>>
字符串劈分(含中文)
查看>>
tcp特征
查看>>